In a remote presentation session, a client computer and a server computer communicate across a communications network. The client sends the server locally-received input, such as mouse cursor movements and keyboard presses. In turn, the server receives this input and performs processing associated with it, such as executing an application in a user session. When the server performs processing that results in output, such as graphical output or sound, the server sends this output to the client for presentation. In this manner, applications appear to a user of the client to execute locally on the client when, they in fact, execute on the server.
A problem with conventional remote presentation sessions is that the client participating in the remote presentation session needs to have installed upon it a remote presentation session application—an application that is configured to communicate with the server in accordance with the remote presentation session protocol. This requirement means that there may be many computers accessible to a user that have a network connection that may communicate with the remote presentation session server, but lack the remote presentation session application with which to conduct a remote presentation session.
There are also techniques for a client to conduct a remote presentation session with a web browser, rather than a remote-presentation-session-specific application. In these techniques, commonly the remoted desktop image is subdivided into a plurality of tiles, and each of these image tiles are sent to the client (or an indication of the tile, where the client has cached the tile), and displayed in the client's web browser. When the remoted desktop image changes, the “dirty” tiles are determined—those tiles where the image has changed—and those dirty tiles are sent to the client for display via the web browser.
There are many problems with these techniques for a client conducting a remote presentation session using a web browser, some of which are well known.